#version 330 core
out vec4 FragColor;  // 输出片段颜色

in vec3 uvw;
in vec2 TexCoord;

uniform samplerCube cube;

void main()
{
    // 定义多个偏移方向，用于从立方体贴图中采样
    vec3 offsets[9] = vec3[](
        vec3(-0.05, -0.05, -0.05), vec3(0.0, -0.05, -0.05), vec3(0.05, -0.05, -0.05),
        vec3(-0.05, 0.0, -0.05),    vec3(0.0, 0.0, -0.05),    vec3(0.05, 0.0, -0.05),
        vec3(-0.05, 0.05, -0.05),   vec3(0.0, 0.05, -0.05),   vec3(0.05, 0.05, -0.05)
    );

    vec4 color = vec4(0.0);

    // 对立方体贴图进行多次采样并求平均
    for(int i = 0; i < 9; i++) {
        color += texture(cube, normalize(uvw + offsets[i] * 0.1));
    }

    color /= 9.0; // 求平均，增强模糊效果

    FragColor = color;

    //FragColor = color;
}